#!/usr/bin/env python

'''
demorgen.be
'''

from calibre.web.feeds.news import BasicNewsRecipe


class DeMorganBe(BasicNewsRecipe):
    title = 'De Morgen'
    __author__ = 'Darko Miletic'
    description = 'News from Belgium in Dutch'
    oldest_article = 1
    language = 'nl_BE'
    encoding = 'utf-8'
    max_articles_per_feed = 100
    no_stylesheets = True
    remove_attributes = ['style', 'height', 'width']
    use_embedded_content = False
    remove_javascript = True
    ignore_duplicate_articles = {'url'}
    masthead_url = 'https://www.demorgen.be/_next/static/media/demorgen_logo.dce579e2.svg'
    cover_url = 'https://usercontent.one/wp/www.insidejazz.be/wp-content/uploads/2018/11/pic0143.png'

    extra_css = '''
        time, [data-test-id:"article-label"], [data-test-id:"article-sublabel"], [[data-test-id:"article-author"]] { font-size:small; }
        [data-test-id:"header-intro"] { font-style: italic; }
    '''

    keep_only_tags = [
        dict(name='article', attrs={'id': 'article-content'}),
    ]

    remove_tags = [dict(name=['iframe', 'aside'])]

    remove_tags_after = [
        dict(name='div', attrs={'class': 'paywall'}),
    ]

    feeds = [
        ('In het nieuws', 'https://www.demorgen.be/in-het-nieuws/rss.xml'),
        ('Niet te missen', 'https://www.demorgen.be/niet-te-missen/rss.xml'),
        ('Beter leven', 'http://www.demorgen.be/beter-leven/rss.xml'),
        ('Crisis Midden-Oosten', 'http://www.demorgen.be/aanval-op-israel/rss.xml'),
        ('Koken met de Morgen', 'http://www.demorgen.be/koken-met-de-morgen/rss.xml'),
        ('Meningen', 'http://www.demorgen.be/meningen/rss.xml'),
        ('Politiek', 'http://www.demorgen.be/politiek/rss.xml'),
        ('TV & Cultuur', 'http://www.demorgen.be/tv-cultuur/rss.xml'),
        ('Oorlog in Oekraine', 'http://www.demorgen.be/oorlog-in-oekraine/rss.xml'),
        ('Tech & Wetenschap', 'http://www.demorgen.be/tech-wetenschap/rss.xml'),
        ('Sport', 'http://www.demorgen.be/sport/rss.xml'),
        ('Podcasts', 'http://www.demorgen.be/podcasts/rss.xml'),
        ('Puzzels', 'http://www.demorgen.be/puzzels/rss.xml'),
        ('Cartoons', 'http://www.demorgen.be/puzzels-cartoons/rss.xml'),
        ('Achter de schermen', 'http://www.demorgen.be/achter-de-schermen/rss.xml'),
        ('Best gelezen', 'http://www.demorgen.be/popular/rss.xml'),
        ('Nieuws', 'http://www.demorgen.be/nieuws/rss.xml'),
    ]

    def preprocess_html(self, soup):
        for img in soup.findAll('img', attrs={'srcset': True}):
            img['src'] = img['srcset'].split()[0]
        return soup
